A. Field of the Invention
The present invention relates generally to systems and methods for generating, communicating and processing product information. More particularly, the invention is directed to gathering subjective and objective data on the effects of products from consumers and using that data to generate product recommendations and ancillary information, to periodically improve the accuracy of the recommendations, and to communicate the product recommendations and ancillary information to the consumers.
B. Description of the Related Art
Many commercially available products provide useful results only after prolonged use. For some products, their effects may be incremental during the period of use. The changes wrought by the use of many products therefore may not be fully appreciated by consumers. This lack of appreciation results from, among other things, the inability of the consumer to meaningfully compare conditions pre- and post-product use. Rather, as conditions change, however incrementally, there is a tendency to compare results to a condition after product use has begun. As a consequence, the consumer may get a false impression of the product's efficacy be it positive, negative, or neutral.
Further compounding the inability of consumers to meaningfully assess the efficacy of many commercially available products is the difficulty of testing the many options in the market and the failure or inability of many products to carry labels communicating their objective performance with respect to the conditions of interest to consumers. The advent of the Internet and developments in the areas of recommendation systems, neural networks, and collaborative filtering, however, now provide opportunities to address the foregoing problems.
The Internet and Other Public and Private Networks
The term “Internet” is an abbreviation for “Internetwork” and commonly refers to the collection of networks and gateways that utilize the TCP/IP suite of protocols, which are well-known in the art of computer networking TCP/IP is an acronym for “Transmission Control Protocol/Internet Protocol.” The Internet can be described as a system of geographically distributed remote computer networks interconnected by computers executing networking protocols that allow users to interact and share information over the networks. Because of such wide-spread information sharing, remote networks such as the Internet have thus far generally evolved into an “open” system for which developers can design software applications for performing specialized operations or services, essentially without restriction.
Electronic information transferred between data-processing networks is usually presented in hypertext, a metaphor for presenting information in a manner in which text, images, sounds, and actions become linked together in a complex non-sequential web of associations that permit the user to “browse” or “navigate” through related topics, regardless of the presented order of the topics. These links are often established by both the author of a hypertext document and by the user, depending on the intent of the hypertext document. For example, traveling among links to the word “iron” in an article displayed within a graphical user interface in a data-processing system might lead the user to the periodic table of the chemical elements (i.e., linked by the word “iron”), or to a reference to the use of iron in weapons in Europe in the Dark Ages. The term “hypertext” was coined in the 1960s to describe documents, as presented by a computer, that express the nonlinear structure of ideas, as opposed to the linear format of books, film, and speech.
A typical networked system that utilizes hypertext conventions follows a client/server architecture. The “client” is a member of a class or group that uses the services of another class or group to which it is not related. Thus, in computing, a client is a process (i.e., roughly a set of instructions or tasks) that requests a service provided by another program. The client process utilizes the requested service without having to “know” any working details about the other program or the service itself. In a client/server architecture, particularly a networked system, a client is usually a computer that accesses shared network resources provided by another computer (i.e., a server).
Client and server communicate with one another utilizing the functionality provided by Hypertext-Transfer Protocol (HTTP). The World Wide Web (WWW) or, simply, the “Web,” includes those servers adhering to this standard (i.e., HTTP) which are accessible to clients via a computer or data-processing system network address such as a Uniform Resource Locator (URL). The network address can be referred to as a Universal Resource Locator address. For example, communication can be provided over a communications medium. In particular, the client and server may be coupled to one another via TCP/IP connections for high-capacity communication. Active within the client is a first process, known as a “browser,” which establishes the connection with the server and presents information to the user. The server itself executes corresponding server software that presents information to the client in the form of HTTP responses. The HTTP responses correspond to “web pages” constructed from a Hypertext Markup Language (HTML), or other server-generated data. Each web page can also be referred to simply as a “page.”
The client typically displays the information provided through the network by the server, using a software application known as a browser. Most browsers have modern graphical user interfaces that are capable of displaying and manipulating various types of data. A graphical user interface is a type of display format that enables a user to choose commands, start programs, and see lists of files and other options by pointing to pictorial representations (icons) and lists of menu items on the screen. Choices can be activated generally either with a keyboard or a mouse. Internet services are typically accessed by specifying a unique network address (i.e., typically with a URL). The URL address has two basic components, the protocol to be used and the object pathname. For example, the URL address, “http://www.uspto.gov” (i.e., home page for the U.S. Patent and Trademark Office), specifies a HTTP and a pathname of the server (“www.uspto.gov”). The server name is associated with one or more equivalent TCP/IP addresses.
Neural Network Analysis
Neural network analysis is a method of modeling non-linear relationships between independent and dependent variables. The analysis is performed by creating a network that accurately models the relationship between the independent and dependent variables. Once a valid neural network is created it can be used to predict values of unknown, dependent variables on the basis of known, independent variables. By convention, in neural network analysis, independent variables are called inputs and dependent variables are called outputs.
The power of a neural network lies in the non-linear equation(s) that it uses to model the relationship(s) between the inputs and the outputs. The equation is a complex function that is defined by a set of variables called connection weights. Specific values for the connection weights are determined by a training algorithm which examines a set of training data. The training data is a set of inputs and associated outputs that are representative of the nonlinear relationship being modeled. The training algorithm processes the training data inputs and finds a set of connection weights that minimize the error between the predicted output of the neural network and the training data output.
A neural network is structurally comprised of an input layer, one or more hidden layers, and an output layer. The output and hidden layers are comprised of interconnected processing elements, which are the main building blocks of the neural network. The primary function of the input layer is to route input values to processing elements of the first hidden layer. Each processing element multiplies each input by a different connection weight value to obtain a product and then sums the individual products. The results are passed through a nonlinear transfer function to produce a processing element output. All processing element outputs of one layer are routed to processing element inputs of the next layer where similar processing is repeated. The final layer in a neural network is the output layer and it may contain linear and/or non-linear processing elements. Non-linear processing elements process inputs in the same manner described above. Linear processing elements simply pass the input of the processing element to the output of the processing element. The outputs of the processing elements in the output layer produce the final output of the neural network.
Other neural network design considerations include whether the neural network is a fully connected and/or a feedforward design. A neural network is fully connected if all outputs from one layer are used as inputs to the next layer. A neural network is feedforward if there are no internal feedback loops (i.e., no outputs from one layer are used as inputs to a previous layer).
The first step in creating a neural network is to define what is to be output. These outputs will be the final outputs of the neural network. The next step is to identify all variables that will materially influence the value of the outputs. These variables will be the inputs to the neural network. Once the network inputs and outputs have been identified the remaining structure of the neural network, including the number of layers and the number of processing elements in each layer, may be determined.
Once the structure of the neural network is determined, the neural network can be created. After creation, the neural network is trained using training data. Training data is a set of data, including input variables and associated output variables, which represent the statistical relationship(s) to be modeled by the neural network. The more training data collected and used the better, particularly if the relationship(s) being modeled is statistical in nature.
Training is accomplished by a training algorithm that is implemented by the neural network. The training algorithm processes the training data and selects appropriate connection weights that most closely model the relationship between the training data inputs and the training data outputs.
Once trained, the performance of the neural network can be evaluated using test data. Testing a neural network is accomplished as follows. Test data inputs are individually input into the neural network. The neural network is run and predicted outputs are generated for each test input. The predicted outputs are compared to actual test data outputs to determine if the neural network is performing properly. A neural network that performs poorly on test data should not be used.
After a neural network is trained it can be used to predict outputs based on various inputs. The resulting predictions then can be used for the purpose for which the neural network was designed. Examples of neural networks are shown and described in U.S. Pat. No. 5,724,258 titled “Neural Network Analysis For Multifocal Contact Lens Design,” and U.S. Pat. No. 5,839,438 titled “Computer-based Neural Network System and Method for Medical Diagnosis and Interpretation,” both of which are incorporated herein fully by reference. Other details and principles regarding neural networks are set forth in “Artificial Neural Networks,” Robert J. Schalkoff (McGraw-Hill, 1997), the contents of which also are incorporated herein fully by reference.
Existing Product Recommendation Systems
The rise of the Internet and its role in e-commerce has resulted in a number of product recommendation systems and methods being developed. Most of these systems share one or more of the following objectives and approaches. First, the systems attempt to help each customer find a small, more manageable sub-set of products that may be more valuable to him or her from amongst thousands of products. In most cases, a customer simply could not browse the product descriptions of the complete set of products; and even if they could, the product descriptions do not contain enough relevant information to enable the customer to assess the value of a specific product with respect to his or her concerns and interests. Second, the systems seek to determine the customer's specific product preferences by analyzing the customer's purchase behavior and product usage feedback. This kind of information extends that available from simple, explicit customer profiles generated through surveys. Third, the recommendation systems seek to exploit information from other customers that is similar to a given customer in some form or another.
Many of these recommendation systems utilize techniques such as collaborative or content-based filtering to supplement information available about a customer's individual behavior. The success of systems using techniques like filtering hinge on the assumption (reasonable in many circumstances) that there is a material degree of overlap in the interests, concerns, and characteristics of the numerous customers served by the systems. However, it is often technically challenging to define the appropriate group or “neighborhood” of similar customers for a given customer, and also to then predict the individual's preferences from those in the neighborhood with present recommendation systems. Finally, some of the present recommendation systems periodically adapt the recommendations to incorporate ongoing customer experience and behavior, though in a very limited and simple fashion.
General categories of existing product recommendation systems follow. It should be noted however that many of the present systems do not fall neatly into any single category. Also, the following few categories are not intended to be exhaustive.
One type of existing product recommendation system is a non-personalized recommendation system. Non-personalized systems recommend products to individual consumers based on averaged information about the products provided by other consumers. Examples of non-personalized product recommendation systems are those of Amazon.com and Moviefinder.com. The same product recommendations are made to all consumers seeking information about a particular product(s) and all product recommendations are completely independent of any particular consumer.
Another type of existing product recommendation system employs item-to-item correlation to formulate recommendations. Item-to-item systems recommend other products to an individual consumer based on relationships between products already purchased by the consumer or for which the consumer has expressed an interest. The relationships employed typically are brand identity, fragrance, sales appeal, market distribution, and the like. In all cases the information on which the relationships are based is implicit. In other words, no explicit input regarding what the consumer is looking for or prefers is solicited by these systems. Rather, techniques such as data mining are employed to find implicit relationships between products for which the individual consumer has expressed a preference and other products available for purchase. The actual performance of products or whether the consumer (or other consumers) ultimately did prefer the products purchased play no part in formulating recommendations with these types of systems.
A third type of existing product recommendation system is an attribute-based system. Attribute-based recommendation systems utilize syntactic properties or descriptive “content” of available products to formulate their recommendations. In other words, attribute-based systems assume that the attributes of products are easily classified and that an individual consumer knows which classification he or she should purchase without help or input from the recommendation system. An exemplary attribute-based recommendation system is the MOVIE MAP service offered by Reel.com. With the MOVIE MAP service the recommendations presented are based solely on the category of movie selected by the consumer. One of the major shortcomings of attribute-based systems is that there is often confusion among consumers and/or professionals about the proper classification of attributes to achieve successful recommendations. For example, in the case of automobile wax for an older vehicle there is disagreement over whether a silicone- or wax-based cream or lotion will provide optimal results.
In the area of product recommendation systems collaborative filtering has proven more reliable than content-based filtering. Nonetheless, both will be discussed as certain embodiments of the present invention may utilize one and/or both types of filters.
Content-Based Filtering
FIG. 1 illustrates some of the principles behind content-based filtering. Matrix 100 is shown for a single user. The prediction is blind to data from other users, and the system assumes all product ratings are binary (i.e., positive or negative). The matrix is not sparse. Assuming the category 102 is soap (S), a content-based filtering technique examines matrix 100 to identify the features (cost 103, fragrance 104, viscosity 105, and the like) associated with the products 110a-110l having a rating 101 by the user (e.g., 110b-c, 110e, 110g, and 110k). The appropriate features 103-105 are then used to characterize the user. Predicted ratings 101 for products not actually rated by the user (e.g., products 110a, 110d, 110f, 110h-j, and 110l) are then mapped into the feature space based on their proximity to clusters of rated products. For example, it can be deduced from the information about the rated products in the matrix that the consumer it characterizes generally prefers soaps with higher cost 103 (ranked from 1 to 10, 1 representing least expensive and 10 representing most expensive) and have an unscented (US) fragrance 104 (scented=V and wild berry scents=WB). Therefore, although the user characterized by matrix 100 has not actually rated product 110a one might predict using content-based filtering that because product 110a is unscented and moderately expensively the user would rate product 110a favorably. Note, there are many techniques for determining the appropriate product features to populate a feature space accurately reflecting the individual user, and features may be added or deleted over time as the system learns more about a particular user or the user's preferences change.
Collaborative Filtering
Collaborative filtering (also referred to as social-information filtering) on the other hand, typically records an extended product preference set that can be matched with a collaborative group. In other words, collaborative filters recommend products that “similar users” have rated highly. Often the social-information is a similar pattern of product preferences.
FIG. 2 illustrates some of the principles underlying collaborative filtering. Once again binary product ratings are assumed. Grid 200 is comprised of product columns 201a-201l and user rows 202a-202p. If the system possesses any rating data for a particular product and user, that data is entered in grid 200 at the cell formed by the intersection of the appropriate product column and user row. For example, from grid 200 it can be seen that user 202a rated product 201a positively. With all the rating data entered in matrix 200 one still expects it to be sparsely populated. The goal of a collaborative filter is to fill in the cells having no ratings data with accurate predictions based on the ratings given by similar users mapped in matrix 200. Consider target user 202i, whose ratings for products 201a-l are enclosed in circle 203. Collaborative filtering identifies user 202o as being similar to target user 202i in his or her ratings of products 202a-p (indicated by arrow 204). Based on this similarity the system might predict that like user 202o, target user 202i would rate product 201l positively as well if he or she actually used it. The system therefore may recommend product 201l to target user 202i. One skilled in the art of collaborative filters will appreciate that a number of techniques exist for generating predictions based on multiple similar users, for selecting appropriate subsets of nearest neighbors on which to base predictions, for incorporating real-valued ratings in the process, and for making real-valued predictions.
Attempts have been made to combine collaborative and content-based filtering in a single system. Combining collaborative and content-based filtering resulted in improved collaborative filtering predictions where the user database was segmented in accordance with content-based filters. An exemplary combined system is described in “Recommendation as Classification: Using Social and Content-Based Information in Recommendation,” Proceedings of the Fifteenth National Conference on Artificial Intelligence (AAAI-98), (Basu, C.; Hirsh, H.; and Cohen, W.; 1998), where collaborative filtering augmented by content-based properties is used to predict movie recommendations. The content-based properties were in a database and included personnel (i.e., actors, directors, and the like), genre, language, and length of the movies. Improved collaborative filtering results were achieved when the user database was segmented on the genre of movie favored by the particular user being served. Another example of a combined content-based and collaborative filtering recommendation system is described in “Combining Content-Based and Collaborative Recommendation,” Communications of the ACM, (Balabanovic, M.; Shoham, Y.; 1997) (http://citeseer.nj.nec.com/balabanovic97combining.html). The Balabanovic and Shoham system uses content-based and collaborative filtering to learn user interest in Internet document fetching and recommends pre-fetch web pages for the user.
Problem Summary
Thus, it is apparent from the foregoing discussion that a number of product recommendation systems employing numerous techniques exist in the art. However, it is also readily apparent that present recommendation systems have significant shortcomings. For instance, many if not most of the products to be considered for a particular consumer may not have been used and rated by many other consumers thereby handicapping collaborative filtering based systems. Also, consumers often have great difficulty in knowing or determining whether some, all, or none of their needs are being met by a particular product he or she may be using. This is particularly true where the need being addressed by a product is characterized by an incremental response. Moreover, while existing systems may be helpful in some categories of products they are inappropriate where performance of the products being recommended is complex or even unknown. Placing a high value on the ratings patterns of other consumers, even though similar in a social-statistical sense, fails to address the likelihood that the consumers may have disparate underlying conditions and problems to be addressed by a product, and that the condition or problem being treated by the product may respond quite differently. In many categories the performance of products cannot be reliably predicted based on ratings patterns of other similar users, promises by the manufacturers thereof, or an examination of the ingredients or makeup of the products.
Accordingly, a need exists in the art for an individualized product recommendation system that does not rely primarily on consumer selection patterns but rather on product performance, optimized segmentation bases, and/or performance-based learning to render highly accurate product recommendations.